home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / SJOIN021.ZIP / SJOIN.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1996-01-20  |  5KB  |  380 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  TINTEGER001(20)
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  INTEGER011
  30.     Integer  INTEGER012
  31.     Integer  INTEGER013
  32.     Integer  INTEGER015
  33.     String   TSTRING001(20)
  34.     String   TSTRING002(20)
  35.     String   TSTRING003(20)
  36.     String   STRING004
  37.     String   STRING005
  38.     String   STRING006
  39.     String   STRING007
  40.     String   STRING008
  41.     String   STRING009
  42.     String   STRING010
  43.     String   STRING011
  44.     String   STRING012
  45.     String   STRING013
  46.     String   STRING014
  47.     String   STRING016
  48.     String   STRING018
  49.     Declare  Function FUNCTION001(Integer INTEGER014) Integer
  50.     Declare  Function FUNCTION002(String STRING017, Integer INTEGER017) String
  51.     Declare  Procedure PROC001()
  52.     Declare  Procedure PROC002(Integer INTEGER016)
  53.  
  54. ;------------------------------------------------------------------------------
  55.  
  56.     STRING007 = "20"
  57.     If (TokCount() > 0) Then
  58.         GetToken STRING006
  59.         KbdStuff Chr(13)
  60.         Join S2I(STRING006, 10)
  61.         End
  62.     Endif
  63.     Print "@X07l@X03o@X0Ba@X0Fding.."
  64.     Gosub LABEL009
  65.     INTEGER009 = 0
  66.     PROC001()
  67.     Cls
  68.     Print "@POFF@@QOFF@"
  69.     DispFile PPEPath() + "S-TOP.PCB", 0
  70.     For INTEGER002 = 0 To INTEGER008
  71.         AnsiPos INTEGER004, INTEGER006 + INTEGER002
  72.         INTEGER005 = GetX()
  73.         PrintLn TSTRING003(INTEGER002)
  74.     Next
  75.     DispFile PPEPath() + "S-BOT.PCB", 0
  76.     Gosub LABEL004
  77.     :LABEL001
  78.     STRING006 = Upper(Inkey())
  79.     If (STRING006 == "") Goto LABEL001
  80.     Select Case (STRING006)
  81.         Case "UP", "A"
  82.             Gosub LABEL003
  83.             Dec INTEGER009
  84.             Gosub LABEL004
  85.         Case "DOWN", "Z"
  86.             Gosub LABEL003
  87.             Inc INTEGER009
  88.             Gosub LABEL004
  89.         Case Chr(13)
  90.             Goto LABEL010
  91.         Case Chr(27)
  92.             Cls
  93.             STRING005 = STRING010
  94.             Goto LABEL010
  95.     End Select
  96.     :LABEL002
  97.     Goto LABEL001
  98.     :LABEL003
  99.     AnsiPos INTEGER005, INTEGER006 + INTEGER009
  100.     Print TSTRING003(INTEGER009)
  101.     Return
  102.     :LABEL004
  103.     If (INTEGER009 < 0) INTEGER009 = INTEGER008
  104.     If (INTEGER009 > INTEGER008) INTEGER009 = 0
  105.     AnsiPos INTEGER005, INTEGER006 + INTEGER009
  106.     If (Upper(Left(STRING011, 1)) == "Y") Then
  107.         Print Upper(TSTRING002(INTEGER009))
  108.     Else
  109.         Print TSTRING002(INTEGER009)
  110.     Endif
  111.     AnsiPos INTEGER003, GetY()
  112.     Return
  113.     End
  114.  
  115. ;------------------------------------------------------------------------------
  116.  
  117.     Procedure PROC001()
  118.  
  119.     Integer  INTEGER012
  120.     Integer  INTEGER013
  121.  
  122.     GetUser
  123.     INTEGER010 = -1
  124.     INTEGER013 = 0
  125.     FOpen 1, STRING014, 0, 0
  126.     FSeek 1, 2, 0
  127.     For INTEGER012 = 0 To HiConfNum()
  128.         INTEGER013 = INTEGER013 + FUNCTION001(INTEGER012)
  129.     Next
  130.     FClose 1
  131.  
  132.     EndProc
  133.  
  134.  
  135. ;------------------------------------------------------------------------------
  136.  
  137.     Function FUNCTION001(Integer INTEGER014) Integer
  138.  
  139.     Boolean  BOOLEAN001
  140.     String   STRING015
  141.     Integer  INTEGER016
  142.  
  143.     FRead 1, STRING015, 14
  144.     If (Strip(STRING015, " ") <> "") Then
  145.         FRead 1, BOOLEAN001, 1
  146.         If (BOOLEAN001 == 1) Then
  147.             If (U_Sec >= S2I(ReadLine(STRING004, (INTEGER014 + 1) * 33 - 10), 10)) Then
  148.                 PROC002(INTEGER014)
  149.                 FUNCTION001 = 1
  150.             Else
  151.                 FUNCTION001 = 0
  152.             Endif
  153.         ElseIf (ConfSel(INTEGER014) || ConfReg(INTEGER014)) Then
  154.             PROC002(INTEGER014)
  155.             FUNCTION001 = 1
  156.         Else
  157.             FUNCTION001 = 0
  158.         Endif
  159.         FSeek 1, 533, 1
  160.     Else
  161.         FSeek 1, 534, 1
  162.         FUNCTION001 = 0
  163.     Endif
  164.  
  165.     EndFunc
  166.  
  167.  
  168. ;------------------------------------------------------------------------------
  169.  
  170.     Procedure PROC002(Integer INTEGER016)
  171.  
  172.     String   STRING016
  173.  
  174.     Inc INTEGER010
  175.     TINTEGER001(INTEGER010) = INTEGER016
  176.     TSTRING001(INTEGER010) = ReadLine(STRING004, (INTEGER016 + 1) * 33 - 32)
  177.     TSTRING002(INTEGER010) = ReplaceStr(STRING012, "%N%", Right(String(TINTEGER001(INTEGER010)), 2))
  178.     TSTRING002(INTEGER010) = ReplaceStr(TSTRING002(INTEGER010), "%C%", FUNCTION002(TSTRING001(INTEGER010), INTEGER007))
  179.     TSTRING003(INTEGER010) = ReplaceStr(STRING013, "%N%", Right(String(TINTEGER001(INTEGER010)), 2))
  180.     TSTRING003(INTEGER010) = ReplaceStr(TSTRING003(INTEGER010), "%C%", FUNCTION002(TSTRING001(INTEGER010), INTEGER007))
  181.     If (InStr(STRING013, "%D%") || InStr(STRING012, "%D%")) Then
  182.         STRING016 = ReadLine(STRING004, (INTEGER016 + 1) * 33 - 12)
  183.         If (STRING016 == "") Then
  184.             TSTRING002(INTEGER010) = ReplaceStr(TSTRING002(INTEGER010), "%D%", FUNCTION002(STRING009, INTEGER011))
  185.             TSTRING003(INTEGER010) = ReplaceStr(TSTRING003(INTEGER010), "%D%", FUNCTION002(STRING009, INTEGER011))
  186.             Goto LABEL005
  187.         Endif
  188.         TSTRING002(INTEGER010) = ReplaceStr(TSTRING002(INTEGER010), "%D%", FUNCTION002(STRING008, INTEGER011))
  189.         TSTRING003(INTEGER010) = ReplaceStr(TSTRING003(INTEGER010), "%D%", FUNCTION002(STRING008, INTEGER011))
  190.     Endif
  191.     :LABEL005
  192.     If (InStr(STRING013, "%M%") || InStr(STRING012, "%M%")) Then
  193.         STRING016 = ReadLine(STRING004, (INTEGER016 + 1) * 33 - 23)
  194.         If (STRING016 == "") Then
  195.             TSTRING002(INTEGER010) = ReplaceStr(TSTRING002(INTEGER010), "%M%", FUNCTION002(STRING009, INTEGER011))
  196.             TSTRING003(INTEGER010) = ReplaceStr(TSTRING003(INTEGER010), "%M%", FUNCTION002(STRING009, INTEGER011))
  197.             Goto LABEL006
  198.         Endif
  199.         TSTRING002(INTEGER010) = ReplaceStr(TSTRING002(INTEGER010), "%M%", FUNCTION002(STRING008, INTEGER011))
  200.         TSTRING003(INTEGER010) = ReplaceStr(TSTRING003(INTEGER010), "%M%", FUNCTION002(STRING008, INTEGER011))
  201.     Endif
  202.     :LABEL006
  203.     If (InStr(STRING013, "%B%") || InStr(STRING012, "%B%")) Then
  204.         STRING016 = ReadLine(STRING004, (INTEGER016 + 1) * 33 - 8)
  205.         If (STRING016 == "") Then
  206.             TSTRING002(INTEGER010) = ReplaceStr(TSTRING002(INTEGER010), "%B%", FUNCTION002(STRING009, INTEGER011))
  207.             TSTRING003(INTEGER010) = ReplaceStr(TSTRING003(INTEGER010), "%B%", FUNCTION002(STRING009, INTEGER011))
  208.             Goto LABEL007
  209.         Endif
  210.         TSTRING002(INTEGER010) = ReplaceStr(TSTRING002(INTEGER010), "%B%", FUNCTION002(STRING008, INTEGER011))
  211.         TSTRING003(INTEGER010) = ReplaceStr(TSTRING003(INTEGER010), "%B%", FUNCTION002(STRING008, INTEGER011))
  212.     Endif
  213.     :LABEL007
  214.     If (InStr(STRING013, "%F%") || InStr(STRING012, "%F%")) Then
  215.         STRING016 = ReadLine(STRING004, (INTEGER016 + 1) * 33)
  216.         If (STRING016 == "") Then
  217.             TSTRING002(INTEGER010) = ReplaceStr(TSTRING002(INTEGER010), "%F%", FUNCTION002(STRING009, INTEGER011))
  218.             TSTRING003(INTEGER010) = ReplaceStr(TSTRING003(INTEGER010), "%F%", FUNCTION002(STRING009, INTEGER011))
  219.             Goto LABEL008
  220.         Endif
  221.         TSTRING002(INTEGER010) = ReplaceStr(TSTRING002(INTEGER010), "%F%", FUNCTION002(STRING008, INTEGER011))
  222.         TSTRING003(INTEGER010) = ReplaceStr(TSTRING003(INTEGER010), "%F%", FUNCTION002(STRING008, INTEGER011))
  223.     Endif
  224.     :LABEL008
  225.     If (CurConf() == INTEGER016) INTEGER009 = INTEGER010
  226.     INTEGER008 = INTEGER010
  227.     If (INTEGER008 + INTEGER006 > 20) INTEGER008 = 21 - INTEGER006
  228.  
  229.     EndProc
  230.  
  231.     :LABEL009
  232.     STRING004 = ReadLine(PCBDat(), 31)
  233.     STRING005 = "CNAMES file not found. You got not conferences??"
  234.     If (Exist(STRING004)) Then
  235.         STRING005 = "No CFG File found.."
  236.         If (Exist(PPEPath() + "SJOIN.CFG")) Then
  237.             FOpen 1, PPEPath() + "SJOIN.CFG", 2, 0
  238.             FGet 1, STRING014
  239.             FGet 1, INTEGER004
  240.             FGet 1, INTEGER003
  241.             FGet 1, INTEGER006
  242.             FGet 1, INTEGER007
  243.             FGet 1, STRING012
  244.             FGet 1, STRING013
  245.             FGet 1, STRING011
  246.             FGet 1, STRING010
  247.             FGet 1, INTEGER011
  248.             FGet 1, STRING008
  249.             FGet 1, STRING009
  250.             FClose 1
  251.             STRING005 = "CNAMES.@@@ file not found."
  252.             If (Exist(STRING014)) Then
  253.                 STRING005 = ""
  254.                 Return
  255.             Endif
  256.         Endif
  257.     Endif
  258.     :LABEL010
  259.     DefColor
  260.     Cls
  261.     PrintLn "@X0FS@X07ickJoin @X0Fv@X070.21 @X0Fb@X07y @X0FF@X07lax!"
  262.     KbdStuff Chr(13)
  263.     If (STRING005 <> "") Then
  264.         Print "@X05" + STRING005
  265.     Else
  266.         Join TINTEGER001(INTEGER009)
  267.         FreshLine
  268.         Newline
  269.     Endif
  270.     Newline
  271.     Print "@PON@@QON@"
  272.     End
  273.  
  274. ;------------------------------------------------------------------------------
  275.  
  276.     Function FUNCTION002(String STRING017, Integer INTEGER017) String
  277.  
  278.     FUNCTION002 = STRING017
  279.     If (Len(STRING017) < INTEGER017) FUNCTION002 = Left(STRING017, INTEGER017)
  280.  
  281.     EndFunc
  282.  
  283.  
  284. ;------------------------------------------------------------------------------
  285. ;
  286. ; Usage report (before postprocessing)
  287. ;
  288. ; ■ Statements used :
  289. ;
  290. ;    3       End
  291. ;    3       Cls
  292. ;    44      Goto 
  293. ;    55      Let 
  294. ;    7       Print 
  295. ;    2       PrintLn 
  296. ;    30      If 
  297. ;    2       DispFile 
  298. ;    2       FOpen 
  299. ;    2       FClose 
  300. ;    12      FGet 
  301. ;    1       GetUser
  302. ;    1       DefColor
  303. ;    6       Gosub 
  304. ;    3       Return
  305. ;    2       Inc 
  306. ;    1       Dec 
  307. ;    2       Newline
  308. ;    1       GetToken 
  309. ;    2       KbdStuff 
  310. ;    2       Join 
  311. ;    4       AnsiPos 
  312. ;    1       FreshLine
  313. ;    3       FSeek 
  314. ;    2       FRead 
  315. ;    2       EndProc
  316. ;    2       EndFunc
  317. ;
  318. ;
  319. ; ■ Functions used :
  320. ;
  321. ;    1       -
  322. ;    6       *
  323. ;    18      +
  324. ;    6       -
  325. ;    14      ==
  326. ;    2       <>
  327. ;    4       <
  328. ;    2       <=
  329. ;    3       >
  330. ;    5       >=
  331. ;    24      !
  332. ;    4       &&
  333. ;    9       ||
  334. ;    1       Len(
  335. ;    3       Upper()
  336. ;    2       Left()
  337. ;    2       Right()
  338. ;    4       Chr()
  339. ;    8       InStr()
  340. ;    1       Strip()
  341. ;    1       Inkey()
  342. ;    2       String()
  343. ;    1       CurConf()
  344. ;    1       PCBDat()
  345. ;    4       PPEPath()
  346. ;    7       ReadLine()
  347. ;    3       Exist()
  348. ;    2       S2I()
  349. ;    1       GetX()
  350. ;    1       GetY()
  351. ;    1       TokCount()
  352. ;    20      ReplaceStr()
  353. ;    1       ConfReg()
  354. ;    1       ConfSel()
  355. ;    2       HiConfNum()
  356. ;
  357. ;------------------------------------------------------------------------------
  358. ;
  359. ; Analysis flags : d
  360. ;
  361. ; d - Access PCBOARD.DAT ■ 2
  362. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  363. ;     for many PPE so they can find various informations on the system
  364. ;     (system paths, max number of lines in messages, ...) but it may also
  365. ;     be a way to gather vital informations.
  366. ;     ■ Search for : PCBDAT()
  367. ;
  368. ;------------------------------------------------------------------------------
  369. ;
  370. ; Postprocessing report
  371. ;
  372. ;    2       For/Next
  373. ;    0       While/EndWhile
  374. ;    18      If/Then or If/Then/Else
  375. ;    1       Select Case
  376. ;
  377. ;------------------------------------------------------------------------------
  378. ;                 AEGiS Corp - Break the routines, code against the machines!
  379. ;------------------------------------------------------------------------------
  380.